package Threads.JMM;

//可见性

//这个程序中，当主线程把run改成false后，t1线程并没有停下来，验证了程序见的不可见

//这里有一个细节，就是，注释掉的两个sout函数，不能出现，如果使用了sout，函数，程序就会正确的停下来
//因为，println函数，是syn修饰的！

//可以使用volatile解决
public class Visual {

    static  boolean run=true;
    public static void main(String[] args) throws InterruptedException {
        Thread t=new Thread(()->{
            while (run){
                //System.out.println("I am running");
                //代码
            }
        },"t1");

        t.start();
        Thread.sleep(2000);
        //System.out.println("run to false");
        run=false;
    }
}
